TODO.Bean

  • Add custom setters for database-saved values
  • Add settable properties that don't save to database

GettingStarted.setupDb

// \RDB::setup('mysql:host=localhost;dbname=mydatabase', 'user', 'password' ); \RDB::setup('sqlite:'.DIR.'/testdb.sqlite'); //empty our recipe table at start of each test \RDB::delete('recipe',[]);

GettingStarted.writeData

\RDB::insert('recipe', ['name'=>'Tofu Scramble']);// <- convenience method in RDB \RDB::insert('recipe', ['name'=>'Vege Stirfry']); $loMein = \RDB::insert('recipe', ['name'=>'Lo Mein']);//also returns a bean $loMein->description = "A non-authentic Chinese noodle dish"; // \RDB::store($loMein); // <- The redbean way $loMein->save(); // <- Convenience method in RDB \RDB::update('recipe', ['id'=>$loMein->id,'name'=>'Veggie Lo Mein']); //<-- Convenience method in RDB. Updates based on the id \RDB::update('recipe', ['name'=>'Veggie Stirfry'], ['name'=>'Vege Stirfry']); //<-- 2nd array is used as WHERE params for the update

$list = \RDB::select('recipe', ['name'=>'Veggie Lo Mein']); $loadedLoMein = $list[0];

$list2 = \RDB::select('recipe', ['name'=>'Veggie Stirfry']); $loadedStirfry = $list2[0];

GettingStarted.usingModel

$tofu = \RDB::select('recipe', ['name'=>'Tofu Scramble'])[0]; $slug = $tofu->slug; // <- not stored in db $url = '/recipe/'.$slug.'/';

return true && $this->compare('tofu-scramble', $slug) ;

GettingStarted.Model

// RDBModel namespace is required namespace RDBModel;

class Recipe extends \RedBeanPHP\SimpleModel {

//Custom property getters MUST start with &get
public function &getSlug(){
    $name = strtolower($this->name);
    $parts = explode(' ', $name);
    $slug = implode('-', $parts);
    return $slug;
}

}